<?php
class AdminConfigurarSisResController extends GenericController {

    private $generarListadoBO; 
    private $consultaLolimsaBO;
    private $configurarParametrosBO;

    public function __construct() {
        $this->className = 'AdminConfigurarSisResController';
        LogUtil::info("class $this->className", "__construct");        
        $this->generarListadoBO = BOFactory::getGenerarListadoBO();
        $this->consultaLolimsaBO = BOFactory::getConsultaLolimsaBO();  
        $this->configurarParametrosBO = BOFactory::getConfigurarParametrosBO(); 
    }

    public function __destruct() {
        LogUtil::info("class $this->className", "__destruct");
    }

    public function main() {
        LogUtil::info("class $this->className", "main"); 
        $paginaDestino = "";
        if(isset($_POST["hiddenSeleccionConfiguracion"])){            
            switch ($_POST["hiddenSeleccionConfiguracion"]) {
                case "btnEditarMedico":                    
                    LogUtil::debug("class $this->className", "presiona btnEditarMedico"); 
                    $this->messages = new WP_Error();            
                    ValidadorUtil::validarComboVacio($this->messages, "cbxMedico",  Constantes::$MSJ_ERROR_MEDICO_VACIO_ADMIN); 
                    if(ValidadorUtil::is_empty_error($this->messages) ){                
                        try{
                            $medico = $this->configurarParametrosBO->obtenerMedicoPorId($_POST["cbxMedico"]);
                            $_POST["txtId"] = $medico->id; 
                            $_POST["txtCodLolimsa"] = $medico->codLolimsa; 
                            $_POST["txtNombre"] = $medico->nombre;  
                            $_POST["txtDescripcion"] = $medico->descripcion;  
                            $_POST["txtMonto"] = $medico->monto; 
                            $_POST["txtCodServLolimsa"] = $medico->codServLolimsa; 
                            $_POST["txtOrden"] = $medico->orden;  
                            $_POST["rbEstado"] = $medico->estado;
                            $paginaDestino =  Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS_MEDICOS;
                        }catch(Exception $e){                    
                            Util::agregarError($this->messages, $e->getCode(),$e->getMessage());  
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                        }
                    }else{
                       $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS; 
                    }
                    break;
                case "btnAgregarMedico":                    
                    LogUtil::debug("class $this->className", "presiona btnAgregarMedico"); 
                    $_POST["rbEstado"] = Constantes::$ESTADO_DEFECTO_MEDICO_NUEVO;
                    $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS_MEDICOS;
                    break;
                
                //horarios
                case "btnEditarHorario":                    
                    LogUtil::debug("class $this->className", "presiona btnEditarHorario"); 
                    $this->messages = new WP_Error();            
                    ValidadorUtil::validarComboVacio($this->messages, "cbxHorario",  Constantes::$MSJ_ERROR_HORARIO_VACIO_ADMIN); 
                    if(ValidadorUtil::is_empty_error($this->messages) ){                
                        try{
                            $horario = $this->configurarParametrosBO->obtenerHorarioPorId($_POST["cbxHorario"]);
                            $_POST["txtId"] = $horario->id; 
                            $_POST["txtCodLolimsa"] = $horario->codLolimsa; 
                            $_POST["txtDescripcion"] = $horario->descripcion;  
                            $_POST["txtOrden"] = $horario->orden;  
                            $_POST["rbEstado"] = $horario->estado;
                            $paginaDestino =  Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS_HORARIOS;
                        }catch(Exception $e){                    
                            Util::agregarError($this->messages, $e->getCode(),$e->getMessage());  
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                        }
                    }else{
                       $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS; 
                    }
                    break;
                case "btnAgregarHorario":                    
                    LogUtil::debug("class $this->className", "presiona btnAgregarHorario"); 
                    $_POST["rbEstado"] = Constantes::$ESTADO_DEFECTO_HORARIO_NUEVO;
                    $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS_HORARIOS;
                    break;                
                //credenciales LOLIMSA
                case "btnEditarWSLolimsa":                    
                    LogUtil::debug("class $this->className", "presiona btnEditarWSLolimsa"); 
                    $this->messages = new WP_Error();            
                    ValidadorUtil::validarTextoVacio($this->messages, "txtUsuarioWS",  Constantes::$MSJ_ERROR_OPCION_USUARIO_LOLIMSA_VACIO); 
                    ValidadorUtil::validarTextoVacio($this->messages, "txtpasswordWS",  Constantes::$MSJ_ERROR_OPCION_PASSWORD_LOLIMSA_VACIO);                    
                    ValidadorUtil::validarTextoVacio($this->messages, "txtWsdlWS",  Constantes::$MSJ_ERROR_OPCION_WSDL_LOLIMSA_VACIO); 
                    
                    if(ValidadorUtil::is_empty_error($this->messages) ){                
                        try{
                            $opcion = new Opcion();
                            //Usuario
                            $opcion->id = Constantes::$OPCION_USUARIO_LOLCLI;
                            $opcion->valor = RenderUtil::getValue('txtUsuarioWS');
                            $opcion->estado = Constantes::$PARAMETRO_ESTADO_SISTEMA;
                            $this->configurarParametrosBO->actualizarOpcion($opcion);
                            //Password
                            $opcion->id = Constantes::$OPCION_PASSWORD_LOLCLI;
                            $opcion->valor = RenderUtil::getValue('txtpasswordWS');
                            $opcion->estado = Constantes::$PARAMETRO_ESTADO_SISTEMA;
                            $this->configurarParametrosBO->actualizarOpcion($opcion);
                            //WSDL
                            $opcion->id = Constantes::$OPCION_WSDL;
                            $opcion->valor = RenderUtil::getValue('txtWsdlWS');
                            $opcion->estado = Constantes::$PARAMETRO_ESTADO_SISTEMA;
                            $this->configurarParametrosBO->actualizarOpcion($opcion);
                            
                            $this->messages =new WP_Info();
                            $this->messages->add("sucess",  Constantes::$MSJ_INFO_UPDATE_WS_LOLIMSA);
                                
                            $paginaDestino =  Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                        }catch(Exception $e){                    
                            Util::agregarError($this->messages, $e->getCode(),$e->getMessage());  
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                        }
                    }else{
                       $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS; 
                    }
                    break;  
                //credenciales VISA
                case "btnEditarWSVISA":                    
                    LogUtil::debug("class $this->className", "presiona btnEditarWSVISA"); 
                    $this->messages = new WP_Error();            
                    ValidadorUtil::validarTextoVacio($this->messages, "txtUsuarioWSVISA",  Constantes::$MSJ_ERROR_OPCION_CODIGO_VISA_VACIO); 
                    ValidadorUtil::validarTextoVacio($this->messages, "txtURLVISA",  Constantes::$MSJ_ERROR_OPCION_URL_VISA_VACIO);                    
                    ValidadorUtil::validarTextoVacio($this->messages, "txtWsdlWSGeneracionVISA",  Constantes::$MSJ_ERROR_OPCION_WSDL_GENERA_VISA_VACIO); 
                    ValidadorUtil::validarTextoVacio($this->messages, "txtWsdlWSConsultaVISA",  Constantes::$MSJ_ERROR_OPCION_WSDL_CONSULTA_VISA_VACIO); 
                    
                    if(ValidadorUtil::is_empty_error($this->messages) ){                
                        try{
                            $opcion = new Opcion();
                            //Usuario
                            $opcion->id = Constantes::$OPCION_CODIGO_COMERCIO_VISA;
                            $opcion->valor = RenderUtil::getValue('txtUsuarioWSVISA');
                            $opcion->estado = Constantes::$PARAMETRO_ESTADO_SISTEMA;
                            $this->configurarParametrosBO->actualizarOpcion($opcion);
                            //Password
                            $opcion->id = Constantes::$OPCION_URL_PAGO_VISA;
                            $opcion->valor = RenderUtil::getValue('txtURLVISA');
                            $opcion->estado = Constantes::$PARAMETRO_ESTADO_SISTEMA;
                            $this->configurarParametrosBO->actualizarOpcion($opcion);
                            //WSDL GENERA
                            $opcion->id = Constantes::$OPCION_WSDL_GENERA_VISA;
                            $opcion->valor = RenderUtil::getValue('txtWsdlWSGeneracionVISA');
                            $opcion->estado = Constantes::$PARAMETRO_ESTADO_SISTEMA;
                            $this->configurarParametrosBO->actualizarOpcion($opcion);
                            //WSDL CONSULTA
                            $opcion->id = Constantes::$OPCION_WSDL_CONSULTA_VISA;
                            $opcion->valor = RenderUtil::getValue('txtWsdlWSConsultaVISA');
                            $opcion->estado = Constantes::$PARAMETRO_ESTADO_SISTEMA;
                            $this->configurarParametrosBO->actualizarOpcion($opcion);
                            $this->messages =new WP_Info();
                            $this->messages->add("sucess",  Constantes::$MSJ_INFO_UPDATE_WS_VISA);
                                
                            $paginaDestino =  Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                        }catch(Exception $e){                    
                            Util::agregarError($this->messages, $e->getCode(),$e->getMessage());  
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                        }
                    }else{
                       $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS; 
                    }
                    break;  
                //correos administradores
                case "btnEditarCorreosAdmin":                    
                    LogUtil::debug("class $this->className", "presiona btnEditarCorreosAdmin"); 
                    $this->messages = new WP_Error();            
                    if(ValidadorUtil::validarTextoVacio($this->messages, "txtCorreosAdmin",  Constantes::$MSJ_ERROR_OPCION_EMAILS_ADMIN_VACIO)){
                        $correos = RenderUtil::getValue('txtCorreosAdmin');
                        $tok = strtok($correos, ",");
                        while ($tok !== false) {
                            if (!ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@+([_a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]{2,200}\.[a-zA-Z]{2,6}$", trim( $tok  ))) {
                               Util::agregarError($this->messages, "correoIncorrecto",Constantes::$MSJ_ERROR_OPCION_EMAILS_ADMIN_INCORRECTO.$tok); 
                            }
                            $tok = strtok(",");
                        }
                    } 
                    
                    if(ValidadorUtil::is_empty_error($this->messages) ){                
                        try{
                            //Correos
                            $opcion->id = Constantes::$OPCION_EMAILS_ADMINISTRADORES;
                            $opcion->valor = RenderUtil::getValue('txtCorreosAdmin');
                            $opcion->estado = Constantes::$PARAMETRO_ESTADO_SISTEMA;
                            $this->configurarParametrosBO->actualizarOpcion($opcion);
                            $this->messages =new WP_Info();
                            $this->messages->add("sucess",  Constantes::$MSJ_INFO_UPDATE_CORREOS_ADMINISTRADORES);
                            $paginaDestino =  Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                        }catch(Exception $e){                    
                            Util::agregarError($this->messages, $e->getCode(),$e->getMessage());  
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                        }
                    }else{
                       $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS; 
                    }
                    break;     
                //estado sistema
                case "btnEditarEstadoSistema":                    
                    LogUtil::debug("class $this->className", "presiona btnEditarEstadoSistema"); 
                    $this->messages = new WP_Error();                      
                    if(ValidadorUtil::is_empty_error($this->messages) ){                
                        try{
                            //Estado Sistema
                            $opcion->id = Constantes::$OPCION_ACCESO_SISTEMA;
                            $opcion->valor = RenderUtil::getValue('rbEstadoSistema');
                            $opcion->estado = Constantes::$PARAMETRO_ESTADO_SISTEMA;
                            $this->configurarParametrosBO->actualizarOpcion($opcion);
                            $this->messages =new WP_Info();
                            $this->messages->add("sucess",  Constantes::$MSJ_INFO_UPDATE_ESTADO_SISTEMA);
                            $paginaDestino =  Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                        }catch(Exception $e){                    
                            Util::agregarError($this->messages, $e->getCode(),$e->getMessage());  
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                        }
                    }else{
                       $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS; 
                    }
                    break; 
                //-------------------------    
                default:
                    break;
            }
        }else if(isset($_POST["hiddenAccionConfiguracion"])){
            switch ($_POST["hiddenAccionConfiguracion"]) {
                case "btnEnviarMedico":                    
                    LogUtil::debug("class $this->className", "presiona btnEnviarMedico"); 
                    $this->messages = new WP_Error();            
                    ValidadorUtil::validarTextoVacio($this->messages, "txtCodLolimsa", Constantes::$MSJ_ERROR_COD_LOLIMSA_MEDICO_VACIO); 
                    ValidadorUtil::validarTextoVacio($this->messages, "txtDescripcion", Constantes::$MSJ_ERROR_NOMBRE_MEDICO_VACIO); 
                    if(ValidadorUtil::validarTextoVacio($this->messages, "txtMonto", Constantes::$MSJ_ERROR_MONTO_MEDICO_VACIO)){
                       if(ValidadorUtil::validarTipoDatoInput($this->messages, "txtMonto", "float", Constantes::$MSJ_ERROR_MONTO_MEDICO_FORMATO)) {
                           ValidadorUtil::validarTipoDatoInput($this->messages, "txtMonto", "positivo", Constantes::$MSJ_ERROR_MONTO_MEDICO_FORMATO);
                       }
                    }
                    ValidadorUtil::validarTextoVacio($this->messages, "txtCodServLolimsa", Constantes::$MSJ_ERROR_COD_SERVICIO_LOLIMSA_VACIO); 
                    if(ValidadorUtil::validarTextoVacio($this->messages, "txtOrden", Constantes::$MSJ_ERROR_ORDEN_HORARIO_VACIO)){
                       if(ValidadorUtil::validarTipoDatoInput($this->messages, "txtOrden", "entero", Constantes::$MSJ_ERROR_ORDEN_MEDICO_FORMATO)) {
                           ValidadorUtil::validarTipoDatoInput($this->messages, "txtOrden", "positivo", Constantes::$MSJ_ERROR_ORDEN_MEDICO_FORMATO);
                       }
                    }                    
                    if(ValidadorUtil::is_empty_error($this->messages) ){                
                        try{                            
                            if($_POST["txtId"]!=""){ //es update
                                $res = $this->configurarParametrosBO->actualizarMedico($this->cargarMedico());
                                if($res){
                                    $this->messages =new WP_Info();
                                    $this->messages->add("sucess",  Constantes::$MSJ_INFO_UPDATE_MEDICO);
                                }
                            }else{ //es insert
                                $res=$this->configurarParametrosBO->guardarMedico($this->cargarMedico());
                                if($res>0){
                                    $this->messages =new WP_Info();
                                    $this->messages->add("sucess",  Constantes::$MSJ_INFO_INSERT_MEDICO);
                                }
                            }
                            unset($_POST["hiddenAccionConfiguracion"]);
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS; 
                        }catch(Exception $e){                    
                            Util::agregarError($this->messages, $e->getCode(),$e->getMessage()); 
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS_MEDICOS; 
                        }
                    }else{
                       $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS_MEDICOS; 
                    }                    
                    break;
                    //horario
                    case "btnEnviarHorario":                    
                    LogUtil::debug("class $this->className", "presiona btnEnviarHorario"); 
                    $this->messages = new WP_Error();            
                    ValidadorUtil::validarTextoVacio($this->messages, "txtCodLolimsa", Constantes::$MSJ_ERROR_COD_LOLIMSA_HORARIO_VACIO); 
                    ValidadorUtil::validarTextoVacio($this->messages, "txtDescripcion", Constantes::$MSJ_ERROR_NOMBRE_HORARIO_VACIO); 
                    if(ValidadorUtil::validarTextoVacio($this->messages, "txtOrden", Constantes::$MSJ_ERROR_ORDEN_HORARIO_VACIO)){
                       if(ValidadorUtil::validarTipoDatoInput($this->messages, "txtOrden", "entero", Constantes::$MSJ_ERROR_ORDEN_HORARIO_FORMATO)) {
                           ValidadorUtil::validarTipoDatoInput($this->messages, "txtOrden", "positivo", Constantes::$MSJ_ERROR_ORDEN_HORARIO_FORMATO);
                       }
                    }                    
                    if(ValidadorUtil::is_empty_error($this->messages) ){                
                        try{                            
                            if($_POST["txtId"]!=""){ //es update
                                $res = $this->configurarParametrosBO->actualizarHorario($this->cargarHorario());
                                if($res){
                                    $this->messages =new WP_Info();
                                    $this->messages->add("sucess",  Constantes::$MSJ_INFO_UPDATE_HORARIO);
                                }
                            }else{ //es insert
                                $res=$this->configurarParametrosBO->guardarHorario($this->cargarHorario());
                                if($res>0){
                                    $this->messages =new WP_Info();
                                    $this->messages->add("sucess",  Constantes::$MSJ_INFO_INSERT_HORARIO);
                                }
                            }
                            unset($_POST["hiddenAccionConfiguracion"]);
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS; 
                        }catch(Exception $e){                    
                            Util::agregarError($this->messages, $e->getCode(),$e->getMessage()); 
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS_HORARIOS; 
                        }
                    }else{
                       $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS_HORARIOS; 
                    }                    
                    break;
                    
                //tipoTarjeta
                    case "btnEnviarTipoTarjeta":                    
                    LogUtil::debug("class $this->className", "presiona btnEnviarTipoTarjeta"); 
                    $this->messages = new WP_Error();             
                    ValidadorUtil::validarTextoVacio($this->messages, "txtDescripcion", Constantes::$MSJ_ERROR_NOMBRE_TIPO_TARJETA_VACIO); 
                    if(ValidadorUtil::validarTextoVacio($this->messages, "txtOrden", Constantes::$MSJ_ERROR_ORDEN_TIPO_TARJETA_VACIO)){
                       if(ValidadorUtil::validarTipoDatoInput($this->messages, "txtOrden", "entero", Constantes::$MSJ_ERROR_ORDEN_TIPO_TARJETA_FORMATO)) {
                           ValidadorUtil::validarTipoDatoInput($this->messages, "txtOrden", "positivo", Constantes::$MSJ_ERROR_ORDEN_TIPO_TARJETA_FORMATO);
                       }
                    }                    
                    if(ValidadorUtil::is_empty_error($this->messages) ){                
                        try{                            
                            $res = $this->configurarParametrosBO->actualizarTipoTarjeta($this->cargarTipoTarjeta());
                            if($res){
                                $this->messages =new WP_Info();
                                $this->messages->add("sucess",  Constantes::$MSJ_INFO_UPDATE_TIPO_TARJETA);
                            }
                            unset($_POST["hiddenAccionConfiguracion"]);
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS; 
                        }catch(Exception $e){                    
                            Util::agregarError($this->messages, $e->getCode(),$e->getMessage()); 
                            $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS_HORARIOS; 
                        }
                    }else{
                       $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS_HORARIOS; 
                    }                    
                    break;
                case "btnCancelar":                    
                    LogUtil::debug("class $this->className", "presiona btnCancelar"); 
                    unset($_POST["hiddenAccionConfiguracion"]);
                    $paginaDestino = Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
                    break;

                default:
                    break;
            }
        }else{
            $paginaDestino =  Constantes::$PAGE_ADMIN_CONFIGURAR_SISRES_PARAMETROS;
        } 
        
        return $paginaDestino;
    }
    
    public function obtenerListadoMedicosOption($nombreComponente){
        LogUtil::info("class ".$this->className, "obtenerListadoMedicosOption");
        $medicos = $this->generarListadoBO->retornarListado(Constantes::$TIPO_LISTADO_MEDICOS);
        foreach ($medicos as $medico) {
           RenderUtil::mostrarOption($medico->id,$medico->descripcion,$nombreComponente);
        }
    }
    
    public function obtenerListadoHorariosOption($nombreComponente){
        LogUtil::info("class ".$this->className, "obtenerListadoHorariosOption");
        $horarios = $this->generarListadoBO->retornarListado(Constantes::$TIPO_LISTADO_HORARIOS);
        foreach ($horarios as $horario) {
            RenderUtil::mostrarOption($horario->id,$horario->descripcion,$nombreComponente);
        }
    }
    
    public function obtenerListadoTipoTarjetasOption($nombreComponente){
        LogUtil::info("class ".$this->className, "obtenerListadoTipoTarjetasOption");
        $tipoTarjetas = $this->generarListadoBO->retornarListado(Constantes::$TIPO_LISTADO_TIPO_TARJETA);
        foreach ($tipoTarjetas as $tipoTarjeta) {
            RenderUtil::mostrarOption($tipoTarjeta->id,$tipoTarjeta->descripcion,$nombreComponente);
        }
    }
    
    public function obtenerValoresPorParametro($parametro,$nombreComponente){
        LogUtil::info("class ".$this->className, "obtenerValoresPorParametro");
        $valores = Enum::obtenerTipos($parametro);
        foreach ($valores as $valor) {
            RenderUtil::mostrarRadio($valor->id,$valor->descripcion,$nombreComponente);
        }
    }
    
    public function obtenerValoresPorEstadoSistema($parametro,$nombreComponente){
        LogUtil::info("class ".$this->className, "obtenerValoresPorEstadoSistema");
        $estadoSistema = $this->configurarParametrosBO->obtenerOpcionPorId(Constantes::$OPCION_ACCESO_SISTEMA);
        $_POST[$nombreComponente] = $estadoSistema->valor;
        $valores = Enum::obtenerTipos($parametro);
        foreach ($valores as $valor) {
            RenderUtil::mostrarRadio($valor->id,$valor->descripcion,$nombreComponente);
        }
    }
    
    private function cargarMedico(){ 
        LogUtil::info("class $this->className", "cargarMedico");
        $medico = new Medico();
        $medico->id = $_POST['txtId']; 
        $medico->codLolimsa = $_POST['txtCodLolimsa']; 
        //$medico->nombre = $_POST['nombre'];  
        $medico->descripcion = $_POST['txtDescripcion'];  
        $medico->monto = $_POST['txtMonto']; 
        $medico->codServLolimsa = $_POST['txtCodServLolimsa']; 
        $medico->orden = $_POST['txtOrden'];  
        $medico->estado = $_POST['rbEstado'];  
        //$medico->fecha = $_POST['fecha'];  
        return $medico;
    }
     private function cargarHorario(){ 
        LogUtil::info("class $this->className", "cargarHorario");
        $horario = new Horario();
        $horario->id = $_POST['txtId']; 
        $horario->codLolimsa = $_POST['txtCodLolimsa'];   
        $horario->descripcion = $_POST['txtDescripcion'];  
        $horario->orden = $_POST['txtOrden'];  
        $horario->estado = $_POST['rbEstado'];  
        //$horario->fecha = $_POST['fecha'];  
        return $horario;
    }  
    
    private function cargarTipoTarjeta(){ 
        LogUtil::info("class $this->className", "cargarTipoTarjeta");
        $tipoTarjeta = new TipoTarjeta();
        $tipoTarjeta->id = $_POST['txtId'];   
        $tipoTarjeta->descripcion = $_POST['txtDescripcion'];  
        $tipoTarjeta->orden = $_POST['txtOrden'];  
        $tipoTarjeta->estado = $_POST['rbEstado'];  
        //$tipoTarjeta->fecha = $_POST['fecha'];  
        return $tipoTarjeta;
    }  
    
    
    function mostrarMedicosLolimsa(){
        LogUtil::info("class ".$this->className, "mostrarMedicosLolimsa");
        $this->messages = new WP_Error();
        $relacionMedicos = null;
        $relacionServicios = null;
        try{             
            $res=$this->consultaLolimsaBO->getToken();
            //echo "Token: ".$res->token."<br>Expira: ".$res->expiry ;
            //consulta el metodo getPartnerData
            $res=$this->consultaLolimsaBO->getPartnerData($res->token);            
            $relacionMedicos = $res->medico;
            $relacionServicios = $res->servicio;
        }catch(Exception $e){                         
            Util::agregarError($this->messages, $e->getCode(),$e->getMessage());                    
        }
        if(ValidadorUtil::is_empty_error($this->messages) ){ 
            echo "<br/><h3>M&eacute;dicos:</h3>";
            echo "<table width='50%' class='widefat post fixed' cellspacing='0'>";
            $this->mostrarTituloTablaMedico("<thead>","</thead>");
            $this->mostrarTituloTablaMedico("<tfoot>","</tfoot>");        
            echo "<tbody>";
            foreach($relacionMedicos as $medico){
                echo "  <tr>";
                $this->mostrarCelda($medico->codRegistro);
                $this->mostrarCelda($medico->descripcion);
                echo "  </tr>";
            }
            echo "</tbody>";
            echo "</table>";
            echo "<br/><h3>Servicios:</h3>";
            echo "<table width='50%' class='widefat post fixed' cellspacing='0'>";
            $this->mostrarTituloTablaMedico("<thead>","</thead>");
            $this->mostrarTituloTablaMedico("<tfoot>","</tfoot>");        
            echo "<tbody>";
            foreach($relacionServicios as $servicio){
                echo "  <tr>";
                $this->mostrarCelda($servicio->codRegistro);
                $this->mostrarCelda($servicio->descripcion);
                echo "  </tr>";
            }
            echo "</tbody>";
            echo "</table>";
        } else{
            echo "<p>Error al obtener la informaci&oacute;n de la WS</p>";
        }       
    }
    
    function mostrarHorariosLolimsa(){
        LogUtil::info("class ".$this->className, "mostrarHorariosLolimsa");
        $this->messages = new WP_Error();
        $relacionHorarios = null;
        try{             
            $res=$this->consultaLolimsaBO->getToken();
            $res=$this->consultaLolimsaBO->GetScheduleDetail($res->token,"1","0001","0001","20120717");             
            $relacionHorarios = $res->cita;
        }catch(Exception $e){                         
            Util::agregarError($this->messages, $e->getCode(),$e->getMessage());                    
        }
        if(ValidadorUtil::is_empty_error($this->messages) ){ 
            echo "<br/><h3>Horarios:</h3>";
            echo "<table width='50%' class='widefat post fixed' cellspacing='0'>";
            $this->mostrarTituloTablaHorario("<thead>","</thead>");
            $this->mostrarTituloTablaHorario("<tfoot>","</tfoot>");        
            echo "<tbody>";
            foreach($relacionHorarios as $horario){
                echo "  <tr>";
                $this->mostrarCelda($horario->horario);
                echo "  </tr>";
            }
            echo "</tbody>";
            echo "</table>";
            
        } else{
            echo "<p>Error al obtener la informaci&oacute;n de la WS</p>";
        }       
    }
    
    function obtenerValorOpcionPorId($id) {
        LogUtil::info("class ".$this->className, "obtenerValorOpcionPorId");
        $this->messages = new WP_Error();
        $valor = null;
        try{             
            $valor=$this->configurarParametrosBO->obtenerOpcionPorId($id)->valor;
        }catch(Exception $e){                         
            Util::agregarError($this->messages, $e->getCode(),$e->getMessage());                    
        }
        return $valor;
    }

    function mostrarCelda($valor){
    	LogUtil::info("class ".$this->className, "mostrarCelda");
    	LogUtil::debug("class ".$this->className, "mostrarCelda:".$valor);
        echo "<td class='manage-column' align='center'>";
        echo    $valor;
        echo "</td>";
    }

    function mostrarCeldaCabecera($valor){
        echo "<th scope='col' class='manage-column'>";
        echo "  <div style='text-align: center;'>";
        echo        $valor;
        echo "  </div>";
        echo "</th>";
    }

    function mostrarTituloTablaMedico($marcai,$marcaf){
        echo $marcai;
        echo "  <tr>";
        $this->mostrarCeldaCabecera("C&oacute;digo");
        $this->mostrarCeldaCabecera("Descripci&oacute;n");
        echo "  </tr>";
        echo $marcaf;
    }
    
    function mostrarTituloTablaHorario($marcai,$marcaf){
        echo $marcai;
        echo "  <tr>";
        $this->mostrarCeldaCabecera("C&oacute;digo");
        echo "  </tr>";
        echo $marcaf;
    }
    
}
?>